The present invention relates to stackable units in packet-based communication systems and in particular to stackable hub units which can be xe2x80x98stackedxe2x80x99 or connected in a ring so that the units form a single logical entity.
When units are stacked to form a single logical device such as a hub or switch, a user connected to a port of any one of the units can send packets to or receive packets from users connected to any of the ports on any of the units, as if all the ports were ports of a single multi-port device. In such a system, the units may be connected to form a closed path or ring by means of which packets can circulate from the unit having the port at which they are received to the unit having the port from which they need to be forwarded.
It is necessary to provide some means of arbitration between requests by the units for access to the ring, that is to say for the ability to place a packet on the ring. This may be achieved in practice, as disclosed in GB patent application number 9812081.9 filed Jun. 5, 1998, and in the corresponding U.S. patent application Ser. No. 09/207655, U.S. Pat. No. 6,330,245 in the name Brewer et al, filed Dec. 9, 1998, by providing in each of the units a state machine which enables each unit to request access to the ring by forming an arbitration packet resembling an Ethernet packet but containing a header which contains appropriate fields. More particularly each of the units may be responsive to packet headers circulating with arbitration and priority fields to conduct an arbitration process which enables one and only one of the units at a time to be a master which supplies packets to the ring and can conduct an arbitration process by which it may retain or relinquish mastership of the ring, thereupon another unit requesting access to the ring can become the master.
In order to enable units to operate in this manner, the aforementioned patent applications describe a physical structure in which each unit has two cascade ports, known as the xe2x80x9cdownxe2x80x9d and xe2x80x9cupxe2x80x9d ports respectively. Each of the units defines two signal paths, one proceeding from the xe2x80x9cdownxe2x80x9d port to the xe2x80x9cupxe2x80x9d port and the other in the reverse direction. The first of these paths may contain the arbitration process by which in normal operation of the stack the identity of the master unit is established and, for that unit, packets are allowed to enter the ring. The second path is a return path by means of which packets return around the ring. Each unit is so organised that if there is no connection to a particular cascade port, packets or frames on the path to that port will bypass the port and be transmitted back along the other path towards the other port of the same unit. If a cascade port is connected to a port on another hub unit, then a packet arriving at that port will be forwarded to the other hub unit. The units are, or should be, connected so that one, and only one of them is at the xe2x80x98bottomxe2x80x99 of the stack. Such a unit should have no unit connected to its xe2x80x98downxe2x80x99 port. It will preferably be the only unit in an idle master state as a preliminary to the arbitration process which can occur only if at least one unit needs access to the ring for placing packets thereon.
In a ring structure which has a distributed arbitration scheme as exemplified in the aforementioned patent applications it is the responsibility of the current master unit to arbitrate between the units which have placed requests to become the next master unit. These units may indicate to the current master unit the request to become master by setting a request bit in the header of the packet from the master unit as the packet traverses the ring. When the master receives its own packet back it extracts the attached requests from the headers and arbitrates between the requests based on the priority level of the individual requests. The master then sends a grant packet which denotes the surrender of mastership of the ring and its transfer to a successful requesting unit having the priority level indicated in the grant packet
The time taken for a packet to complete a traversal of the ring and to return to the master unit originating the packet will depend upon the number of units in the ring and the latency involved in passing through a unit in the ring. If the number of units in the ring is small and the packet being transmitted by the master is long then the master may receive back the start of its own packet before it has finished transmitting the end of it. In this case, as soon as the master has finished transmitting the end of the packet it can make an arbitration decision using the requests it has received from the header of the packet and, after the customary inter-packet gap required by the system, it may send out a grant packet.
However, if the ring is large and the packet being transmitted is small then the master will have finished transmitting the packet long before it as received the header of the packet back again and so it cannot yet make a decision on which unit should be the next master. Therefore nothing useful is transmitted and the bandwidth of the system is wasted.
The present invention is aimed at improving the performance of a ring of stacked units with distributed arbitration.
The invention provides, broadly, a scheme in which if a master unit has completed the transmission of a packet and, preferably, after the required inter-packet gap has elapsed, it has not yet received a header to permit the making of an arbitration decision it can transmit another packet. The header information of this packet would indicate to the other units that this subsequent packet is part of a burst of packets and the other units should not set requests in the header of this packet because this packet would not be used for arbitration. The master unit may indicate the nature of the subsequent packet by setting a sequence number in the header of the packet to distinguish it and subsequent packets in a burst from the xe2x80x98firstxe2x80x99 packet which is the one used to pick up requests from the units that may need to become the master unit
The scheme may readily be arranged so that if after a second packet is sent and the master unit has still not received the header from the first packet it may send another packet with an incremented sequence number. The current master unit may continue this process until a maximum sequence number is reached, determined by the size of a field indicated or available in the header. A larger field for the sequence number may allow more packet bursting but a limit is set by the time it takes the smallest packet that can be supported to traverse the largest ring that may be accommodated.
When the header of a first packet in a sequence is received a master unit should make an arbitration decision and if appropriate, grant a new mastership of the ring to a new master unit. However a current master unit should still remove from the ring all the subsequent packets in the burst to ensure that they do not traverse the ring more than once. Preferably the master removes all packets until it sees a packet with a sequence number equal to the number of packets that it has sent in a burst.
If a master decides in an arbitration phase that it should remain the master of the ring because it has a higher priority than any other requesting unit then it may reset a sequence count to zero and send a first packet with a sequence number set to the datum (zero).